#include <iostream>
#include <future>
#include <thread>
using namespace std;

void Add(int num1, int num2, promise<int> &pro)
{
    pro.set_value(num1 + num2); // 将结果值设置到promise的future对象中
}

int main()
{
    promise<int> pro;
    future<int> fut = pro.get_future();

    thread t(Add, 10, 20, ref(pro));
    cout << fut.get() << endl; // get函数在未获取到值时都会进行阻塞等待

    t.join();

    return 0;
}